/**
 *  @Package: com.yidu.drug.action
 *  @author: Administrator
 *  @date: 2018年8月9日 上午10:11:26
 */
package com.yidu.drug.action;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.yidu.drug.common.Message;
import com.yidu.drug.common.Page;
import com.yidu.drug.common.Tools;
import com.yidu.drug.model.DrugManagerModel;
import com.yidu.drug.model.DrugManagerRoleModel;
import com.yidu.drug.model.DrugRoleModel;
import com.yidu.drug.service.DrugManagerService;
import com.yidu.drug.service.DrugRoleService;


/**
 * 类的描述 用户action层
 * @author 祝浪
 * @date 2018年8月9日
 */
@Controller
@RequestMapping("drugManager")
public class DrugManagerAction {
	@Resource
	private DrugManagerService dmSer;
	@Resource
	private DrugRoleService drser;
	
	/**
	 * 得到session中的用户信息
	 * @param session 
	 * @return
	 */
	@RequestMapping("/findUser")
	@ResponseBody
	public DrugManagerModel findUser(HttpSession session){
		DrugManagerModel us = (DrugManagerModel) session.getAttribute("manager");
		return us;
	}
	
	/**
	 * 分页查询所有
	 * @param session
	 * @param dmm 条件查询
	 * @param page 页数
	 * @param limit 显示行数
	 * @return map集合
	 */
	@RequestMapping("/findAll")
	@ResponseBody
	public Map<String, Object> findAll(HttpSession session,DrugManagerModel dmm,int page,int limit) {
		DrugManagerModel us = (DrugManagerModel) session.getAttribute("manager");
		if(!"1".equals(us.getFilId())){
			dmm.setFilId(us.getFilId());
		}
		Page pages = new Page();
		pages.setPage(page);
		pages.setRows(limit);
		List<DrugManagerModel> list = dmSer.findLimit(dmm, pages);
		Map<String, Object> map = new HashMap<String, Object>();
		//需要符合layUI格式，code msg count data
		map.put("code", 0);
		map.put("msg", "1");
		map.put("count", dmSer.findTotalRows(dmm));
		map.put("data", list);
		dmm=new DrugManagerModel();
		return map;
	}
	/**
	 * 删除用户
	 * @param dmm 用户信息
	 * @return 删除信息
	 */
	@RequestMapping("/delete")
	@ResponseBody
	public Message delete(DrugManagerModel dmm) {
		dmSer.delete(dmm);
		Message msg = new Message(1,"删除成功！");
		return msg;
	}
	/**
	 * 修改用户状态
	 * @param dmm用户对象
	 * @return 
	 */
	@RequestMapping("/updateVet")
	@ResponseBody
	public Message updateVet(DrugManagerModel dmm) {
		dmm.setIsva(0);
		dmSer.updateVet(dmm);
		System.out.println(dmm.getManUser()+"========="+dmm.getManPwd());
		IndustrySMS.execute(dmm.getManUser(), dmm.getManPwd());
		Message msg = new Message(1,"已审核");
		return msg;
	}
	/**
	 * 修改用户
	 * @param session 取到用户信息
	 * @param file 头像上传
	 * @param dmm 用户对象
	 * @param request 请求
	 * @return 跳转到本页面进行刷新
	 */
	@RequestMapping("/updateUser")
	public String updateUser(HttpSession session,@RequestParam(value = "userImage", required = false) MultipartFile file,DrugManagerModel dmm,HttpServletRequest request) {
		if(!file.isEmpty()){
			String path = request.getServletContext().getRealPath("upload");
			
			String yuan = file.getOriginalFilename().split("\\.")[1];
			
			String fileName = Tools.getRandomUUID()+"."+yuan;
			
			//将上传的文件保存到upload文件夹下
			try {
				file.transferTo(new File(path+"/"+fileName));
			} catch (IllegalStateException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			} catch (IOException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
			dmm.setManRemark("upload/"+fileName);
		}
		dmSer.updateUser(dmm);
		DrugManagerModel usdmm = dmSer.findByUsId(dmm.getManId());
		session.setAttribute("manager", usdmm);
		return "redirect:UserMess.html";
	}
	/**
	 * 修改用户方法
	 * @param session 获取登录用户信息
	 * @param file 图片文件
	 * @param dmm 用户对象
	 * @param request 请求
	 * @return 跳转到本页面刷新
	 */
	@RequestMapping("/addOrUpdate")
	public String addOrUpdate(HttpSession session,DrugManagerModel dmm,HttpServletRequest request) {
		DrugManagerModel usdmm = (DrugManagerModel) session.getAttribute("manager");
		
		dmm.setOper(usdmm.getManUser());
		dmSer.addOrUpdate(dmm);
		dmm=new DrugManagerModel();
		return "redirect:../pages/lobby/drugManager.html";
	}
	/**
	 * 根据用户查询角色模块表信息
	 * @param dmm 用户对象
	 * @return 用户角色
	 */
	@RequestMapping("/findRole")
	@ResponseBody
	public List<DrugRoleModel> findRole(HttpSession session) {
		
		Page page=new Page();
		page.setRows(null);
		DrugRoleModel drole=new DrugRoleModel();
		List<DrugRoleModel> drugRoleModel = drser.findAll(session, drole, page);
		return drugRoleModel;
		
	}
	/**
	 * 根据用户Id查询角色模块表信息
	 * @param dmm 用户对象
	 * @return 
	 */
	@RequestMapping("/findRoleByManId")
	@ResponseBody
	public List<DrugManagerRoleModel> findRoleByManId(DrugManagerModel dmm){
		List<DrugManagerRoleModel> list = dmSer.findRoleByManId(dmm.getManId());
		return list;
	}
	/**
	 * 查询角色模块表信息
	 * @return 
	 */
	@RequestMapping("/findRoleByStaff")
	@ResponseBody
	public List<DrugRoleModel> findRoleByStaff() {
		List<DrugRoleModel> OrdRoleModeldmm = dmSer.findRoleByStaff();
		return OrdRoleModeldmm;
	}
	/**
	 * 登录判断
	 * @param dmm 用户对象
	 * @param session 将用户对象存放
	 * @return 
	 */
	@RequestMapping("/findManager")
	@ResponseBody
	public Message findManager(DrugManagerModel dmm,HttpSession session) {
		DrugManagerModel redmm = dmSer.isLogin(dmm);
		
		Message message = new Message(0, "登录成功");
		if(redmm != null) {
			if(redmm.getIsva()==0){
				session.setAttribute("manager", redmm);
			}else{
				message.setNum(1);
				message.setMsg("账号无效");
			}
		}else {
			message.setNum(1);
			message.setMsg("用户名或密码错误");
		}
		return message;
	}
	/**
	 * 根据名字查询判断是否存在
	 * @return 存在行数
	 */
	@RequestMapping("findManagerName")
	@ResponseBody
	public int findManagerName(DrugManagerModel us){
		return dmSer.findManagerName(us);
		
	}
	/**
	 * 登录成功跳转
	 * @param session 移除上次登录的信息
	 * @return 
	 */
	@RequestMapping("/unLogin")
	public String unLogin(HttpSession session) {
		session.removeAttribute("manager");
		return "redirect:../pages/lobby/login.html";
	}
	@RequestMapping("/findModByManager")
	@ResponseBody
	public DrugManagerModel findModByManager(HttpSession session) {
		
		DrugManagerModel man = (DrugManagerModel) session.getAttribute("manager");
		return man;
	}
	/**
	 * 修改个人用户方法
	 * @param session 获取登录用户信息
	 * @param file 图片文件
	 * @param dmm 用户对象
	 * @param request 请求
	 * @return 跳转到本页面刷新
	 */
	@RequestMapping("/addOrUpdates")
	@ResponseBody
	public String addOrUpdates(HttpSession session,DrugManagerModel dmm,HttpServletRequest request) {
		DrugManagerModel usdmm = (DrugManagerModel) session.getAttribute("manager");
		dmm.setFilId(usdmm.getFilId());
		
		dmm.setOper(usdmm.getManUser());
		dmSer.addOrUpdate(dmm);
		dmm=new DrugManagerModel();
		return "修改成功";
	}
}
